面向对象OOP——仿苏格拉底教学法

OOP,编程思想

首次写于2018.3.16
更新于 2024.1.22

从问题开始
惊异正是哲学家的特征(情绪),哲学开始于惊异。——苏格拉底——柏拉图《泰阿泰德篇》
哲学源于闲暇,惊异,自由。——亚里士多德《形而上学》

知识诅咒
专家盲点( expert blind spot ): 对一个事物知道得越多,就越发不记得「不知道这个事」的情形。

白马非马

《公孙龙子·白马论》
“白马非马,可乎?”曰:“可。”

曰:“何哉?”曰:“马者,所以命形也。白者,所以命色也。命色者,非命形也,故曰白马非马。”

曰:“有白马,不可谓无马也。不可谓无马者,非马也?有白马为有马,白之非马,何也?”

曰:“求马,黄、黑马皆可致。求白马,黄、黑马不可致。使白马乃马也,是所求一也,所求一者,白者不异马也。所求不异,如黄、黑马有可有不可,何也?可与不可其相非明。故黄、黑马一也,而可以应有马,而不可以应有白马,是白马之非马审矣。”

曰:“以马之有色为非马,天下非有无色之马也。天下无马,可乎?”

曰:“马固有色,故有白马。使马无色,有马如已耳,安取白马?故白者非马也。白马者,马与白也;马与白马也,故曰:白马非马也。

曰:“马未与白为马,白未与马为白。合马与白,复名白马,是相与以不相与为名,未可。故曰:白马非马,未可。”

曰:“以有白马为有马,谓有白马为有黄马,可乎?”曰:“未可。”曰:“以有马为异有黄马,是异黄马于马也。异黄马于马,是以黄马为非马。以黄马为非马,而以白马为有马;此飞者入池,而棺椁异处;此天下之悖言乱辞也。”

曰:“有白马,不可谓无马者,离白之谓也。是离者有白马不可谓有马也。故所以为有马者,独以马为有马耳,非有白马为有马。故其为有马也,不可以谓马马也。”

曰:“白者不定所白,忘之而可也。白马者,言定所白也。定所白者,非白也。马者无去取于色,故黄、黑皆所以应。白马者,有去取于色,黄、黑马皆所以色去,故唯白马独可以应耳。无去者非有去也。故曰:白马非马。”

白马是马吗?为什么?

这里的「是」是什么意思?

白马与马分别代表什么?白马与马是什么关系?

可以画个简图描述下它们的结构层次关系吗?最顶层是什么?

为何要区分万事万物?

is it just a name?
名可名?只是个名字?

为了方便什么?

思考的本质是什么?

没有语言能产生思想吗?

抽象的本质是什么?有什么好处?

Duck Typing(鸭子类型)

如果一只鸟看起来像鸭子,走起来像鸭子,叫起来像鸭子,那么是否可以把它当作鸭子?

类型重要吗?为什么?

概念和属性,名与质的关系

《图灵测试到底测了个啥?》 (超科技现象统计局)>)

共识,集体想象(name, meme)

人类简史,国家,公司的概念

「国家」、「公司」实际存在吗?

公司,换螺丝钉,

can we build abstract entities or abstract objects in our mind or in some storage medium(such as a paper or a computer)?

我们能在我们脑海中或者任何存储介质(如一张纸或一台计算机)上创建抽象实体或者说抽象对象吗?

可以把共享同一语言的人看作是一个巨大的抽象计算机,把每个使用这门语言交流的人看作这个计算机的一个零部件吗?

(to SF fans :能联想起某些科幻作品中的描述吗?)

联想:年轻人为什么喜欢制造和使用新词?

构建共同体,抱团,排斥异类?

标签

理发师悖论(自指)

哥德尔不完备性定理

Python OOP 示例

对于Python解释器(后面简称为小派)来说,一个对象即内存里的一块区域,可以存放数据、操作等等。由于内存空间有限,一般情况下,如果你没有给一个对象取名,小派会在一段时间后忘掉它。为了方便,小派给每个对象分配一个id号,可以使用id()函数查询。另外,聪明的小派会自动为每个对象标记一个类型,使用type()函数查询。

取名的语法是:

name = object

# example
a = 1

type(a) # => <class 'int'>
id(a) # => 1665101280

抽离视角

问关于白马非马这样的问题

相当于带领人抽离自身(主观)视角

观察人是如何起名和分类的

这个第三方视角,可以促进概念层,思想框架的清晰化

对于懂OOP编程的朋友来说,基本问题想必都是小CASE,然而对于尚未入门的人来说,这些问题正是引导至这个方向的好问题(来自我过去的哲学学习经验。。)。